home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / BBS-Archive / Util / Workbench / appserver-3.01.lha / AppServerV3.01 / AppServer.doc < prev    next >
Text File  |  1992-01-30  |  15KB  |  451 lines

  1.  
  2.                 AppServer V3.01
  3.                 ---------------
  4.  
  5. NOTE ! WorkBech 2.0 or later required !!!
  6.  
  7. What's new in V3.xx ? You can use AppIcons too !
  8.  
  9. Have you ever tried to drag an icon into the IconEdit's window ? IconEdit
  10. loads it automatically and you don't have to give any names. I liked that
  11. feature and wanted to see it in every utility I had. AppServer gives you
  12. the power of Application Windows. It is an Application Window AND -Icon
  13. Server for WorkBench 2.0.                                     ^^^^^^^^^
  14.  
  15. AppServer is a configurable front-end for utility programs. An example
  16. would be fine, I guess...
  17.  
  18. You want to show a picture. You drag the picture file icon into AppServer's
  19. window or icon and AppServer shows the picture using your favorite Iff-Viewer.
  20. You can as well make other windows/icons which play samples, show documents
  21. and even delete files !
  22.  
  23. **************************************************************************
  24.  
  25. Automatic Disclaimer activated from keyword: delete
  26.  
  27. I, Jarto Juhani Tarpio, claim no responsibility whatsoever of what
  28. this program might do to your equipment, disk contents or mental health.
  29. You run this program entirely at your own risk !
  30.  
  31. **************************************************************************
  32.  
  33. Now I feel better. Just go on reading ! :-)
  34.  
  35.  
  36. Configuration
  37. -------------
  38.  
  39. Configuration is done by icon tool types. If you don't know what a tool type
  40. is, mark the AppServer icon and select "Information" from the Icons menu.
  41.  
  42. Supported tool types are:
  43.  
  44.     NAME=
  45.         Name of the window to be opened
  46.  
  47.     LEFT=
  48.         Window left coordinate
  49.  
  50.     TOP=
  51.         Window top coordinate
  52.  
  53.     WIDTH=
  54.         Window width
  55.  
  56.     HEIGHT=
  57.         Window height
  58.  
  59.     COMMAND=
  60.         This one is the most important tooltype.
  61.         The command is a CLI-command that is executed from AppServer.
  62.         In the command you mark    the filename place with (icon)
  63.  
  64.         For example: COMMAND=SYS:Utilities/More "(icon)"
  65.  
  66.             The example would show the file with more.
  67.             The quotes are added so that AppServer can
  68.             handle spaces in filenames. They are not added
  69.             automatically, because some utilities can't
  70.             handle quotes.
  71.  
  72.         There may be multiple (icon)'s in a command string.
  73.  
  74.         NOTE ! AppServer is not limited to only one command-
  75.         argument. You can give as many commands you want and
  76.         they are executed one after other in the same order
  77.         they appear in the tooltypes.
  78.  
  79.     OUTPUT=
  80.         Output filename. Default is NIL:. If you want to
  81.         output for example a dir list, the filename could be
  82.         for example OUTPUT=CON:0/0/640/200/AppServer/CLOSE/WAIT
  83.  
  84.     RECURSION=ON/OFF
  85.         An ON/OFF-switch for recursive directory handling. If
  86.         this switch is ON, AppServer takes every file in the
  87.         given directories and their subdirectories. Default
  88.         option is OFF.
  89.  
  90.     ICONS=ON/OFF
  91.         An ON/OFF-switch for icon-handling. If the switch is on and:
  92.         - If the icon doesn't have any file, AppServer takes it's
  93.           .info-file.
  94.         - If directories are read recursively, every icon-file is
  95.           also taken.
  96.         Default option is OFF (No icons)
  97.  
  98.     DOUBLECLICK=ON/OFF
  99.         If this switch is ON and you doubleclick the window,
  100.         your commands will be run without a filename. This is
  101.         a handy way to launch for example an editor.
  102.         Default option is OFF, because doubleclick may be
  103.         disasterous if the commands delete files.
  104.  
  105.     BREAK=ON/OFF
  106.         If this switch is ON, you may interrupt AppServer
  107.         while it's working. Really handy when you have accidentally
  108.         dropped your hard disk icon into AppServer's window :-)
  109.         Possibility to switch it off because mouseclicks
  110.         while viewing pictures may give AppServer a break-signal...
  111.         Default option is ON.
  112.  
  113.     PAUSE=
  114.         Time to wait before AppServer starts handling your icons.
  115.         Default is 0 seconds. This delay is handy when your
  116.         commands delete files. It gives you time to think over...
  117.  
  118.     REQUESTER=ON/OFF
  119.         A simple "Are you sure ?"-requester that will show up
  120.         after the possible pause. May be a good idea to use
  121.         when your commands delete files.
  122.  
  123.     APPICON
  124.         This option makes AppServer use AppIcons instead of AppWindows.
  125.  
  126.  
  127.     NOTE THAT THE OPTIONS MUST BE WRITTEN IN UPPER CASE !
  128.  
  129.     You should configure the AppServer by creating own Project-
  130.     type icons. In the Project-type icons write a path to the
  131.     AppServer into the Default Tool field. If you only duplicate the
  132.     AppServer-icon and reconfigure it, you waste disk space.
  133.  
  134.     The AppServer-icon is configured to show document files using
  135.     more. There's a Project-type icon, AppMore, that does the
  136.     same thing. You can use it as an example.
  137.  
  138. Clicking on the window/icon
  139. ---------------------------
  140.  
  141. If you double-click on the window/icon, the commands are run with an empty
  142. filename. I added this feature because then I can start my favourite text
  143. editor just by double-clicking on my ED-window.
  144.  
  145. This option is OFF if you don't use the "DOUBLECLICK=ON"-option.
  146.  
  147. With Icons, a doubleclick will bring up an About-requester where you can
  148. quit the icon. If you use the DOUBLECLICK=ON-feature, the commands are
  149. run with an empty filename as with the windows, but you can't quit the
  150. icon.
  151.  
  152. Be careful with the Doubleclick-option. Let me tell you why... (How I
  153. learned to use lock... :-)
  154.  
  155. I was writing a script that would delete all the files and act like
  156. a trashed. I don't use trashcans and to get rid of a file by just
  157. dropping it into a trasher-window sounded nice. When I had written
  158. the script, I drawed an icon and configured it to run my script. Then
  159. I opened my hard disk. The window opened partially over the trasher
  160. window. I doubleclicked the window to bring it to front...
  161.  
  162. What went wrong ? You see, trasher started my script with an empty
  163. filename and gave the command: "Delete ALL QUIET". So it started
  164. deleting all my files in the SYS-device.
  165.  
  166. As an final note: Dave, your DiskSalv is nice ! :-)
  167.  
  168. Interrupting AppServer
  169. ----------------------
  170.  
  171. With Windows: You may interrupt AppServer by clicking in the window with your
  172.               left mouse button while AppServer working on your icons.
  173.  
  174. With Icons:   You may interrupt AppServer by DOUBLEclicking on the icon with
  175.               your left mouse button.
  176.  
  177. This is very handy when you have dropped wrong icons into AppServer's
  178. window. This feature may be disabled with the BREAK=OFF option.
  179.  
  180. AppWindow Graphics
  181. ------------------
  182.  
  183. An empty window would look horrible. I'm not good at drawing... Hmm...
  184. The solution is icons. AppServer takes the image from your Project-icon
  185. and draws it in the middle of the window.
  186.  
  187. If your icon has two images, the second one is showed while AppServer
  188. is working on your icons. You could draw this second image to look
  189. like a cancel-button. If option BREAK=ON is used, clicking this
  190. button would stop AppServer. A second image is a nice way to show
  191. the user that AppServer is working, so you could draw one even if
  192. you don't use the break-possibility...
  193.  
  194. Now it's up to you to draw good-looking icons :-)
  195.  
  196.  
  197. Examples
  198. --------
  199.  
  200. Some examples how to use AppServer. Use them as guidelines. Note that you
  201. may not have the same utilities that I use and the paths to them are
  202. definitely different than in your Amiga. DON'T COPY THE COMMENTS !!!
  203.  
  204.  
  205. WB1.3-icons look ugly in WB2.0. This example uses BlackOrWhite to convert
  206. WB1.2 icons to 2.0 ones:
  207.  
  208. NAME=IConvert
  209. APPICON                    ' AppIcon instead of AppWindow this time...
  210. LEFT=430
  211. TOP=153
  212. ICONS=ON                ' If no file, AppServer will give us the icon
  213. COMMAND=dh0:Starc/BlackOrWhite "(icon)"    ' BlackOrWhite can be found in the package...
  214. DONOTWAIT                ' This is needed in AppServer 3.xx because
  215.                     ' the first AppServer will not return.
  216.  
  217. A picture viewer using ShowIff by Chris Weber:
  218.  
  219. WIDTH=89
  220. HEIGHT=51
  221. LEFT=635
  222. TOP=411
  223. NAME=PIC
  224. PAUSE=0                    ' No delays...
  225. REQUESTER=OFF                ' No questions needed...
  226. COMMAND=dh0:Stuff/ShowIff "(icon)"
  227. RECURSION=OFF                ' ShowIff takes the dir contents...
  228. ICONS=OFF                ' Why show icons ?
  229. DOUBLECLICK=OFF                ' There's no file requester...
  230. BREAK=OFF                ' Usually picture changed with
  231.                     ' left mousebutton that may give
  232.                     ' AppServer a Break-signal.
  233. APPICON                    ' If you want to bring it up as an icon
  234. DONOTWAIT
  235.  
  236.  
  237. A document viewer using More:
  238.  
  239. WIDTH=89
  240. HEIGHT=51
  241. LEFT=635
  242. TOP=462
  243. NAME=DOC
  244. PAUSE=0                    ' No delays...
  245. REQUESTER=OFF                ' No questions needed...
  246. COMMAND=run SYS:Utilities/More (icon)
  247. RECURSION=OFF                ' Recursion maybe not wise ?
  248. ICONS=OFF                ' Icons neither...
  249. DOUBLECLICK=ON                ' Brings up a file requester
  250. BREAK=ON                ' User may interrupt viewing...
  251. APPICON                    ' If you want to bring it up as an icon
  252. DONOTWAIT
  253.  
  254.  
  255. A sample player:
  256.  
  257. WIDTH=89
  258. HEIGHT=51
  259. LEFT=635
  260. TOP=513
  261. NAME=SND
  262. PAUSE=0                    ' No delays...
  263. REQUESTER=OFF                ' No questions needed...
  264. COMMAND=DH0:Stuff/PlaySample "(icon)"
  265. RECURSION=OFF                ' PlaySample plays executables also...
  266. ICONS=OFF                ' As well as icons...
  267. DOUBLECLICK=OFF                ' No file requester
  268. BREAK=ON                ' User may interrupt playing...
  269. APPICON                    ' If you want to bring it up as an icon
  270. DONOTWAIT
  271.  
  272.  
  273. A ST-player using NoisePlayer:
  274.  
  275. WIDTH=96
  276. HEIGHT=51
  277. LEFT=628
  278. TOP=11
  279. NAME=PLAY
  280. PAUSE=0                    ' No delays...
  281. REQUESTER=OFF                ' No questions needed...
  282. COMMAND=execute dh0:MusicProgs/TrakkerModules/PlayScript (icon)
  283. RECURSION=ON                ' Play every module in dirs too...
  284. ICONS=OFF                ' Don't play icon-files
  285. DOUBLECLICK=ON                ' Bring up a requester
  286. BREAK=ON                ' User may interrupt playing...
  287. APPICON                    ' If you want to bring it up as an icon
  288. DONOTWAIT
  289.  
  290.  
  291. The PlayScript is:
  292.  
  293. .key module
  294. IF <module$GarbageToFindEmptyOne> EQ "GarbageToFindEmptyOne"
  295.   cd dh0:MusicProgs/TrakkerModules
  296.   dh0:Stuff/NoisePlayer -r
  297. ELSE
  298.   dh0:Stuff/NoisePlayer -m5 <module>
  299. ENDIF
  300.  
  301.  
  302. And finally the Trasher ! A deleter that kills the given files
  303. just like Delete in the WorkBench. It's here where the options
  304. PAUSE, REQUESTER and BREAK are mostly needed :-)
  305.  
  306. My Trasher doesn't ask any questions. It just waits two seconds
  307. before starting and it can be interrupted by clicking in the window.
  308. You could add requesters with REQUESTER=ON and give no pause value
  309. if you want Trasher to ask for your permission first.
  310.  
  311. The deletion is done by IconKill. It deletes the file and the icon.
  312. Icons disappear from the WB-screen as well as directories are closed.
  313.  
  314. This Trasher is really dangerous. A safer one could be to copy the
  315. files to a graveyard-directory before killing them. The script
  316. could always empty the graveyard in the beginning. Then the last
  317. deleted files would be in the graveyard until the next deletion.
  318.  
  319. But here's the dangerous one. Read the disclaimer once more before
  320. using it. My icon-image looks really nasty... :-)
  321.  
  322. NAME=KILL
  323. TOP=62
  324. LEFT=628
  325. WIDTH=96
  326. HEIGHT=88
  327. PAUSE=2                ' Pause value gives you time to think over...
  328. REQUESTER=OFF            ' It would be safer to switch it on...
  329. COMMAND=IconKill "(icon)"    ' IconKill can be found in the package...
  330. OUTPUT=nil:
  331. RECURSION=ON            ' Every file in the subdirs
  332. ICONS=ON            ' Including icons
  333. DOUBLECLICK=OFF            ' AND NO DOUBLECLICK !!!!!!!!!!!!!!!!!!!!
  334. BREAK=ON            ' This makes you definitely feel better :-)
  335. APPICON                ' If you want a trasher-icon instead of a window.
  336. DONOTWAIT
  337.  
  338.  
  339. Techical stuff and possible problems
  340. ------------------------------------
  341.  
  342. - AppServer can't be run from CLI. If you want to start AppServers at boot-
  343.   time, drag the icons to the WbStartup-drawer.
  344.  
  345. - If you don't give any COMMAND-arguments, AppServer will start, but doesn't
  346.   do anything useful.
  347.  
  348. - When you have dropped icons into AppServer's window, it starts by first
  349.   locking to every file and collecting the locks into a list. When every
  350.   file has been collected, AppServer replies to messages and starts
  351.   running your commands on the icons. This may cause delays if big
  352.   directories are processed recursively.
  353.  
  354. - AppServer launches the programs using Execute from dos.library. This execute
  355.   is about the same as run in CLI. It's not the Execute in CLI.
  356.  
  357. - When the user interrupts AppServer, the disk drives may continue working
  358.   because AppServer has to stop legally. That is: Unlock every locked file.
  359.  
  360. - AppServer doesn't show with requesters if the command was succesful. While
  361.   building the command you can change the output to a file or console so that
  362.   you can notice the error messages. I use "pipe:" and a script that types
  363.   my messages from pipe to a window.
  364.  
  365. - Don't assume that the default dir would be in the same dir as the icon you
  366.   just dragged into AppServer. In fact, the default dir is SYS:. Keep this
  367.   in mind if you use scripts.
  368.  
  369. - AppServer waits until the previous command has been executed. If you want
  370.   to be able to execute the next command before the previous has been completed
  371.   use RUN just like in CLI.
  372.  
  373. - Every window and icon have an own process. Code is however shared so you won't
  374.   waste memory.
  375.  
  376. - AppServer was coded in Assembly using ArgAsm from Argonaut Software.
  377.  
  378. Changes
  379. -------
  380.  
  381. V1.1    AppServer opened and closed the output file and delayed at every
  382.      command. It wasn't nice when executed many commands to the console.
  383.     Now I open the file before the first command and delay and close it
  384.      after the last command.
  385.  
  386. V1.2    Filename and windowname were not null-terminated. Argh...
  387.  
  388. V1.3    Now opens windows using OpenWindowTagList and WA_AutoAdjust.
  389.     Default output-file 'NIL:' was typed as DC.L instead of DC.B O:-)
  390.     Now executes the command with an empty filename if user double-clicks
  391.      on the window. Nice way to launch a text-editor...
  392.  
  393. V2.0    Major changes:
  394.     Added recursive handling of directories.
  395.     Working image taken from the Icon's secong image.
  396.     Break possible by clicking the window while AppServer is working.
  397.     Optional requester added for dangerous configurations.
  398.     Five new arguments:
  399.                 RECURSION=ON/OFF
  400.                 ICONS=ON/OFF
  401.                 DOUBLECLICK=ON/OFF
  402.                 BREAK=ON/OFF
  403.                 REQUESTER=ON/OFF
  404.     Pause changed ! Now it is a delay BEFORE starting handling icons.
  405.      It used to be a time value to wait after a command had been
  406.      executed. But it was useless, because console windows can wait
  407.      for the close button in WB2.0.
  408.  
  409. V3.0    Major changes:
  410.     Added AppIcon support. (Argument APPICON)
  411.     Code sharing to minimize memory consumption.
  412.     Added a small utility, BlackOrWhite, to add IConvert functions.
  413.  
  414. V3.01    The first AppServer didn't always start...
  415.  
  416.     IconKill didn't delete ".info"-file.
  417.  
  418.     Also added ASS (AppServerServer) by Juha Tuominen to the package.
  419.     ASS checks the type of the given file and runs different programs
  420.     depending on the type. The benefit is that you only need one
  421.     "Show"-AppWindow that can show pics, docs, samples etc..
  422.     Read ass.doc for more info !
  423.  
  424.  
  425.  
  426. Credits
  427. -------
  428.  
  429. I would like to send my thanks to the Commodore Folks at WestChester
  430. for making so many nice features into KS/WB2.0 and for adding
  431. DeleteDiskObject() afterwards to icon.library. It's good to notice
  432. that you are reading our suggestions !
  433.  
  434. Many thanks also to Juha Tuominen for making the AppServerServer (ass).
  435.  
  436.  
  437. Copyright and distribution
  438. --------------------------
  439.  
  440. AppServer is Copyright © 1991 by Jarto Tarpio. It can be freely distributed
  441. for non-commercial purposes.
  442.  
  443. Comments and bug-reports to:
  444.  
  445. Jarto Tarpio
  446. Nikkarinkuja 2 A6
  447. 02600 Espoo
  448. Finland
  449.  
  450. Internet e-mail: robin@vipunen.hut.fi or Jarto.Tarpio@hut.fi
  451.